package com.yaodian100.ec.shelf.entity;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.yaodian100.core.common.entity.BaseEntity;

@Entity
@Table(name = "EC_SHELF_MAIN")
public class Shelf extends BaseEntity {

	/** serial version */
	private static final long serialVersionUID = -5167399542494973402L;

	/** 上架編號 */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_ec_shelf")
	@SequenceGenerator(name = "seq_ec_shelf", sequenceName = "SEQ_EC_SHELF")
	@Column(name = "SHELF_ID")
	private Long shelfId;

	/** 商品編號 */
	@Column(name = "PRODUCT_ID", length = 8)
	private String productId;

	/** 上架起始日期時間 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "START_DATE")
	private Date startDate;

	/** 上架結束日期時間 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "END_DATE")
	private Date endDate;

	/** 商品促銷小標 */
	@Column(name = "PROMOTE_NAME", length = 200)
	private String promoteName;

	/** 上架售價 */
	@Column(name = "SHELF_PRICE", nullable = false, columnDefinition = "numeric(10,2)")
	private BigDecimal shelfPrice;

	/** 上架狀態 */
	@Column(name = "SHELF_STATUS", length = 6)
	private String shelfStatus;

	/** hotspot屬性, 用來註記是否在版面特定區塊被挑出產生(例如首頁精選商品,館長推建,最夯商品,...) */
	@Column(name = "HOTSPOT1", length = 1)
	private String hotspot1;

	/** hotspot屬性, 用來註記是否在版面特定區塊被挑出產生(例如首頁精選商品,館長推建,最夯商品,...) */
	@Column(name = "HOTSPOT2", length = 1)
	private String hotspot2;

	/** hotspot屬性, 用來註記是否在版面特定區塊被挑出產生(例如首頁精選商品,館長推建,最夯商品,...) */
	@Column(name = "HOTSPOT3", length = 1)
	private String hotspot3;

	/** hotspot屬性, 用來註記是否在版面特定區塊被挑出產生(例如首頁精選商品,館長推建,最夯商品,...) */
	@Column(name = "HOTSPOT4", length = 1)
	private String hotspot4;

	/** 備註 */
	@Column(name = "SHELF_MEMO", length = 200)
	private String shelfMemo;

	/**
	 * 審核人
	 */
	@Column(name = "APPROVE_USER")
	private String approveUser;

	/**
	 * 審核日期
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "APPROVE_DATE")
	private Date approveDate;

	/**
	 * 審核失敗原因
	 */
	@Column(name = "APPROVE_FAIL_REASON")
	private String approveFailReason;

	/**
	 * 上架类别
	 */
	@Column(name = "SHELF_TYPE", length = 1)
	private String shelfType = "1";

	/**
	 * 赠送购物金点数
	 */
	@Column(name = "GIVE_BONUS")
	private int giveBonus = 0;

	/**
	 * 购买时必须输输入验证码
	 */
	@Column(name = "IS_VALIDATE_NUM", length = 1)
	private String isValidateNum;

	/**
	 * 會員是否限購1件
	 */
	@Column(name = "IS_LIMIT_BUY", length = 1)
	private String isLimitBuy;

	/**
	 * @return the endDate
	 */
	public Date getEndDate() {
		return endDate;
	}

	/**
	 * @return the hotspot1
	 */
	public String getHotspot1() {
		return hotspot1;
	}

	/**
	 * @return the hotspot2
	 */
	public String getHotspot2() {
		return hotspot2;
	}

	/**
	 * @return the hotspot3
	 */
	public String getHotspot3() {
		return hotspot3;
	}

	/**
	 * @return the hotspot4
	 */
	public String getHotspot4() {
		return hotspot4;
	}

	/**
	 * @return the productId
	 */
	public String getProductId() {
		return productId;
	}

	/**
	 * @return the promoteName
	 */
	public String getPromoteName() {
		return promoteName;
	}

	/**
	 * @return the shelfId
	 */
	public Long getShelfId() {
		return shelfId;
	}

	/**
	 * @return the shelfMemo
	 */
	public String getShelfMemo() {
		return shelfMemo;
	}

	/**
	 * @return the shelfPrice
	 */
	public BigDecimal getShelfPrice() {
		return shelfPrice;
	}

	/**
	 * @return the shelfStatus
	 */
	public String getShelfStatus() {
		return shelfStatus;
	}

	/**
	 * @return the startDate
	 */
	public Date getStartDate() {
		return startDate;
	}

	/**
	 * @param endDate the endDate to set
	 */
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	/**
	 * @param hotspot1 the hotspot1 to set
	 */
	public void setHotspot1(String hotspot1) {
		this.hotspot1 = hotspot1;
	}

	/**
	 * @param hotspot2 the hotspot2 to set
	 */
	public void setHotspot2(String hotspot2) {
		this.hotspot2 = hotspot2;
	}

	/**
	 * @param hotspot3 the hotspot3 to set
	 */
	public void setHotspot3(String hotspot3) {
		this.hotspot3 = hotspot3;
	}

	/**
	 * @param hotspot4 the hotspot4 to set
	 */
	public void setHotspot4(String hotspot4) {
		this.hotspot4 = hotspot4;
	}

	/**
	 * @param productId the productId to set
	 */
	public void setProductId(String productId) {
		this.productId = productId;
	}

	/**
	 * @param promoteName the promoteName to set
	 */
	public void setPromoteName(String promoteName) {
		this.promoteName = promoteName;
	}

	/**
	 * @param shelfId the shelfId to set
	 */
	public void setShelfId(Long shelfId) {
		this.shelfId = shelfId;
	}

	/**
	 * @param shelfMemo the shelfMemo to set
	 */
	public void setShelfMemo(String shelfMemo) {
		this.shelfMemo = shelfMemo;
	}

	/**
	 * @param shelfPrice the shelfPrice to set
	 */
	public void setShelfPrice(BigDecimal shelfPrice) {
		this.shelfPrice = shelfPrice;
	}

	/**
	 * @param shelfStatus the shelfStatus to set
	 */
	public void setShelfStatus(String shelfStatus) {
		this.shelfStatus = shelfStatus;
	}

	/**
	 * @param startDate the startDate to set
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public String getApproveFailReason() {
		return approveFailReason;
	}

	public void setApproveFailReason(String approveFailReason) {
		this.approveFailReason = approveFailReason;
	}

	public String getApproveUser() {
		return approveUser;
	}

	public void setApproveUser(String approveUser) {
		this.approveUser = approveUser;
	}

	public Date getApproveDate() {
		return approveDate;
	}

	public void setApproveDate(Date approveDate) {
		this.approveDate = approveDate;
	}

	public String getShelfType() {
		return shelfType;
	}

	public void setShelfType(String shelfType) {
		this.shelfType = shelfType;
	}

	public int getGiveBonus() {
		return giveBonus;
	}

	public void setGiveBonus(int giveBonus) {
		this.giveBonus = giveBonus;
	}

	public String getIsValidateNum() {
		return isValidateNum;
	}

	public void setIsValidateNum(String isValidateNum) {
		this.isValidateNum = isValidateNum;
	}

	public String getIsLimitBuy() {
		return isLimitBuy;
	}

	public void setIsLimitBuy(String isLimitBuy) {
		this.isLimitBuy = isLimitBuy;
	}
}
